آموزش برنامه نویسی
نوشته شده در تاريخ سه شنبه 8 آذر 1390برچسب:, توسط hamed |

 چرا هنگام تعريف يک شناسه از نوع const در داخل يک struct يا class، حتما اين شناسه بايد بصورت static هم تعريف شود؟نوع static چيست؟

--->

هنگامیکه متغیری به صورت استاتیک تعریف می شود شما هر نمونه ای از کلاس را تعریف کنید ، این متغیر فقط دارای یک مقدار خواهد بود.
ثوابت
unchanging types هستند. A constant or type declaration is implicitly a static member.

accepted  It has uses in both C and C++.

 

As you guessed, the "static" part limits it's scope to that file. It also provides for static initialization. "const" just tells the compiler to not let anybody modify it. This variable is either put in the data or bss segment depending on the architecture, and might be in memory marked read-only.

 

All that is how C treats these variables ( or how C++ treats namespace variables ). In C++, a member marked static is shared by all instances of a given class. Whether it's private or not doesn't affect the fact that one variable is shared by multiple instances. Having 'const' on there will warn you if any code would try to modify that.

 

If it was strictly private, then each instance of the class would get it's own version ( optimizer notwithstanding)

 

پذیرفته شده است استفاده می کند در هر دو C و C + +.

همانطور که شما حدس زده ، "استاتیک" بخشی محدود دامنه آن به آن فایل است. همچنین برای مقدار دهی اولیه استاتیک فراهم می کند. "توایع" فقط به کامپایلر می گوید که اجازه نمی دهد کسی آن را تغییر دهید. این متغیر در داده ها و یا بخش
BSS بسته به نوع معماری است یا قرار داده ، و ممکن است در حافظه مشخص شده اند فقط خواندنی.

است که چگونه
C رفتار میکند این متغیر (یا C + + با رفتار متغیر های فضای نام). در C + +، عضو استاتیک مشخص شده توسط تمام نمونه از یک کلاس داده شده است به اشتراک گذاشته می شود. این که آیا آن را خصوصی یا نه، این واقعیت است که یک متغیر است موارد متعددی مشترک تاثیر نمی گذارد. داشتن 'توایع وجود دارد شما اگر هر کد، سعی کنید به تغییر آن هشدار می دهند.

اگر آن را به شدت خصوصی بود، و سپس هر نمونه از کلاس به نسخه خود آن را (بهینه ساز علیرغم)

 

 



نظرات شما عزیزان:

fatemehmontazer
ساعت20:31---8 آذر 1390
ممنون از جوابتون
ولی قالب و ترازچینی جواب سوال قابل خواندن نیست.


نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:






تمام حقوق اين وبلاگ و مطالب آن متعلق به صاحب آن مي باشد.